콘텐츠로 건너뛰기
  • [프론트 플러그인] FacePass API 관련 문의

    자유 문의 프론트 플러그인
    2
    0 투표
    2 게시물
    8k 조회수
    토스플레이스-개발자센터토
    페이스패스는 별도 이용 신청이 필요합니다. 페이스패스 파트너스 : https://facepass-partners.toss.im/ 위 사이트를 참고해주세요. 감사합니다.
  • 0 투표
    2 게시물
    8k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 무카드 취소의 지원 범위와 VAN 거래 일련번호 확인 기준을 안내 드립니다. 1. NICE 계약과 vanTransactionKey 반환 NICE로 계약하더라도 vanTransactionKey가 모든 승인 응답에 항상 반환되는 것은 보장하지 않습니다. 해당 값은 VAN사와 결제 환경에 따라 비어 있을 수 있으므로, 계약한 VAN만으로 판단하지 말고 실제 승인 응답에 값이 있는지 확인해 주세요. 값을 요청하기 위한 별도 파라미터를 추가하는 방식은 아닙니다. 2. VAN·결제수단별 적용 범위 requestCardlessPaymentCancel의 현재 지원 범위는 NICE·CARD입니다. NICEPAY와 KSNET은 이 API의 지원 범위에 포함되지 않습니다. 신용카드·체크카드와 삼성페이·애플페이는 결제 결과가 CARD로 반환된 경우 위 기준으로 판단하되, 해당 수단이라는 이유만으로 vanTransactionKey 수신을 보장하지는 않습니다. 토스페이·네이버페이·카카오페이·알리페이·위챗페이가 BARCODE로 처리된 거래는 이 무카드 취소 API의 대상이 아닙니다. 3. 발급사·매입사 구분과 취소 처리 발급사·매입사별로 값이 항상 제공되는 목록을 기준으로 구현하기보다는, NICE·CARD 여부와 실제 vanTransactionKey 수신 여부를 함께 확인해 분기해 주세요. 원 승인 응답에 유효한 값이 있으면 다른 원거래 정보와 함께 저장해 무카드 취소에 사용하고, 값이 없는 카드 거래는 현재 구현하신 requestPaymentCancel 방식으로 처리해 주세요. BARCODE 거래의 취소는 해당 결제수단의 일반 취소 절차를 적용해야 하며, 카드 재인식 방식과는 구분해 주세요. Payment API의 무카드 취소 및 승인 응답 안내를 참고해 주세요.
  • 0 투표
    3 게시물
    8k 조회수
    C
    @토스플레이스-개발자센터 답변해주셔서 감사합니다
  • 0 투표
    5 게시물
    8k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 추가로 알려주신 KIS CAT 연결 구성을 기준으로 안내 드립니다. 1. Payment API 사용 조건 현재처럼 KIS-1421이 결제를 승인하고 프론트2는 멀티패드로만 사용하는 구성에서는 Payment API를 사용할 수 없습니다. Payment API를 사용하려면 프론트가 직접 결제를 승인하는 구성이어야 하며, 프론트에 TID를 포함한 매장정보 설정이 필요합니다. 기존 연결을 그대로 유지한 상태에서 Payment API만 추가하는 방식은 아니므로, 전환에 필요한 설정은 담당 KIS 대리점에 확인 부탁 드립니다. 2. 기존 CAT 결제의 웹훅 기존 KIS CAT에서 승인한 결제는 Open API 결제 웹훅으로 제공되지 않습니다. 결제 웹훅은 토스 POS·프론트 플러그인 등 토스 솔루션에서 처리한 결제를 대상으로 동작합니다. 토스 프론트를 카드 리더기로 사용한다는 이유만으로 외부 CAT의 승인 내역이 웹훅으로 전달되는 것은 아닙니다. 앞서 안내한 리더기 방식과 프론트 직접 승인 방식의 차이도 함께 참고해 주세요.
  • requestPayment() 오류 처리와 화면 제어

    자유 문의 프론트 플러그인
    2
    0 투표
    2 게시물
    10k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 문의 주신 결제 오류 발생 후 화면 동작과 재결제 처리 방식에 대해 안내 드립니다. 예외 반환 후 오류 화면이 유지되는 이유 결제 실패 결과를 플러그인에 전달하는 처리와 프론트 결제창을 닫는 처리는 별개입니다. 따라서 catch가 실행된 뒤에도 오류 안내 화면이 잠시 표시될 수 있습니다. 현재 구현상 해당 화면은 약 3초 뒤 자동으로 닫힙니다. ‘다른 수단으로 결제’ 버튼의 동작 해당 버튼은 현재 결제창을 닫고 플러그인 화면으로 돌아가는 기능입니다. 버튼을 누르는 것만으로 결제수단 선택이나 재결제가 자동으로 진행되지는 않습니다. 이미 실패로 종료된 requestPayment에는 이후 결제 결과가 추가로 전달되지 않습니다. 재결제하려면 새로운 paymentKey로 requestPayment를 다시 호출하고, 새 요청의 결과를 처리해 주세요. 결제 요청 가이드 Template API를 통한 화면 전환 catch에서 Template API로 플러그인 화면을 변경할 수 있지만, Template API 호출만으로 프론트의 결제 오류 화면이 닫히지는 않습니다. 변경한 플러그인 화면은 결제창이 닫힌 뒤 표시됩니다. 오류 화면을 즉시 닫아야 한다면, 프론트 앱 2.71 이상에서 canCancelPayment로 종료 가능 여부를 확인한 뒤 cancelPayment를 호출할 수 있습니다. canceled가 true인지 확인하고, 화면 전환은 오류 처리 흐름 한 곳에서만 실행해 중복 처리를 방지해 주세요. 여기서 cancelPayment는 결제창을 닫는 기능이며, 승인된 결제를 취소하는 기능과는 다릅니다. 결제창 닫기 가이드
  • 0 투표
    2 게시물
    10k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 통합결제창의 할부개월 설정과 선택 화면에 대해 안내 드립니다. installment의 의미 카드 결제에 사용할 초기 할부개월 값이며, 0은 일시불입니다. 결제수단을 미리 선택하는 값은 아니며, 통합결제창에서 카드 결제를 진행할 때 사용됩니다. 프론트에서 할부개월 선택 5만 원 이상 카드 결제 시 프론트의 서명 화면에서 할부개월을 선택할 수 있습니다. ‘할부’ 항목을 누르면 선택 화면이 열리고, 고객이 선택한 값으로 승인이 요청됩니다. 따라서 별도 할부 입력 화면을 개발하거나 표시 옵션을 추가할 필요는 없습니다. installment를 생략하거나 0으로 전달해도, 위 조건에서는 고객이 할부개월을 변경할 수 있습니다. 실제 할부 승인 가능 여부는 카드사·카드 조건에 따라 달라질 수 있습니다. 결제 API 가이드
  • 0 투표
    3 게시물
    10k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. SDK 오류의 해석, 취소 결과 확인과 재시도 기준, 추가로 문의하신 테스트 승인 처리에 대해 안내 드립니다. 1. 오류 필드와 UNKNOWN·2666의 의미 TossFrontSDKError의 name은 오류 유형, invokeName은 호출한 기능명, code는 전달된 오류 코드, message는 오류 설명, raw는 원본 오류 데이터입니다. UNKNOWN은 전달된 오류 데이터에 code가 없을 때 SDK가 사용하는 기본값입니다. 전달해 주신 예시도 raw에 message만 있어 UNKNOWN으로 표시됩니다. message 안의 2666을 SDK가 별도 code 필드로 변환하지는 않습니다. API별 파라미터·응답 및 조회 오류는 Payment API 가이드를 참고해 주세요. 2666의 정확한 원인과 발생 단계는 실제 단말기 호출·응답 로그 확인이 필요합니다. 현재 글에는 대상 단말기와 발생 시각이 없어 해당 거래 로그를 확인하지 못했습니다. 앱 ID, 프론트 시리얼번호·앱 버전, 사용 VAN, 발생 일시(한국 시간)를 개발자센터 메일로 전달 부탁 드립니다. 카드번호·현금영수증 식별번호 등 개인정보는 보내지 않으셔도 됩니다. 2. 예외 발생 후 실제 거래 상태 확인 SDK 예외나 UNKNOWN만으로 실제 승인·취소 여부를 일괄 판단하지 마세요. getPayment와 getPaymentCancel은 VAN에 거래 상태를 다시 조회하는 API가 아니라, 요청한 단말기에 저장된 성공 응답을 복구하는 API입니다. getPaymentCancel의 PAYMENT_NOT_FOUND는 해당 paymentKey의 취소 성공 응답이 단말 캐시에 없다는 뜻이지, 실제 거래가 취소되지 않았다는 확정 결과는 아닙니다. 캐시는 성공 결과만 저장하며, 보관기간 만료나 저장 가능한 건수 제한 등의 영향도 받습니다. 먼저 취소를 요청한 동일 단말기에서 원래 paymentKey로 조회해 주세요. 결과를 복구하지 못하면 자동 재시도를 멈추고, 원승인번호·승인 시각·금액을 기준으로 VAN 대리점을 통해 실제 승인·취소 상태를 확인해 주세요. 승인 캐시와 취소 캐시는 별도이므로, getPayment에 승인 결과가 남아 있다는 이유만으로 미취소로 판단하지 않아야 합니다. 3. 동일 paymentKey로 재요청하는 경우 같은 paymentKey를 전달하는 것만으로 중복 거래가 자동 차단되지는 않습니다. 결과가 미확정인 상태에서는 자동으로 승인·취소를 반복하지 마세요. 취소 재요청은 원거래의 실제 상태를 먼저 확인하고 원승인 정보를 그대로 사용해야 합니다. 4. 테스트 현금영수증 승인 처리 실제 현금영수증을 발급한 테스트 건은 테스트 후 취소 처리해 주세요. 단순 화면·결제 흐름 확인이 목적이라면 현금 결제 > 현금영수증 미발급 방식으로 테스트하시는 것을 권장합니다. 자진발급 설정에 따라 실제 발급될 수 있으므로 응답의 cash.isCashReceipt도 확인해 주세요. 미취소 내역의 구체적인 처리 영향은 등록된 VAN·가맹점 조건에 따라 확인이 필요하므로, 해당 VAN 대리점에 확인 부탁 드립니다. 결제 테스트 가이드도 함께 참고해 주세요.
  • 0 투표
    2 게시물
    11k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 숫자 입력 화면의 초기값과 입력 방식에 대해 안내 드립니다. 1. 초기값과 초기화 파라미터 현재 SDK에서 숫자 입력 화면의 초기값은 빈 문자열이며, 0을 기본값으로 넣도록 구성되어 있지 않습니다. 전달해 주신 코드에 value 또는 defaultValue가 없어서 0이 표시되는 것은 아닙니다. 현재 공개된 파라미터에는 초기값을 지정하거나 입력값을 강제로 초기화하는 항목이 없습니다. value, defaultValue를 추가하는 방식은 지원하지 않습니다. 2. text 타입으로 변경하는 경우 최상위 type을 text로 변경하면 일반 문자 입력용 키보드를 사용하므로, 현재의 숫자 전용 키패드를 유지하는 방식은 아닙니다. 또한 이 변경만으로 문의하신 현상이 해결된다고 안내하기는 어렵습니다. 3. 현상 확인에 필요한 정보 현재 제공된 정보만으로는 간헐적인 0 표시의 원인이나 템플릿 수정 필요 여부를 확정할 수 없습니다. 실제 단말기 로그와 적용 버전을 확인할 수 있도록 앱 ID, 적용한 플러그인 버전, 프론트 시리얼번호·앱 버전, 최근 발생 일시(한국 시간)를 개발자센터 메일로 전달 부탁 드립니다. 공개 입력 항목은 입력화면 템플릿 가이드를 참고해 주세요.
  • [공지] 자주 묻는 질문

    고정됨 자유 문의 pos 플러그인 프론트 플러그인 open-api
    1
    0 투표
    1 게시물
    13k 조회수
    토스플레이스-개발자센터토
    연동가이드 FAQ를 먼저 확인해 주세요 문의 전에 연동가이드 FAQ에서 관련 내용을 먼저 확인해 주세요. 개발·테스트·검수·배포와 제품별 주요 질문을 모아 두었어요. FAQ에서 답을 찾지 못했다면 포럼에 문의를 남겨 주세요. 1. 연동 수단 고르기 Q. 프론트 플러그인과 토스 POS를 함께 쓸 수 있나요? A. 동시 연결은 지원하지 않아요. 프론트 플러그인 모드는 외부 POS 또는 솔루션사 시스템과 토스 프론트를 연동하기 위한 모드예요. 토스 POS와 프론트를 함께 사용하신다면 프론트는 일반 연결 모드로 동작하고, 플러그인을 개발해 프론트 화면을 직접 구성하는 방식은 사용할 수 없어요. 이 구성에서 확장이 필요하면 POS 플러그인 SDK 또는 Open API를 검토해 주세요. Q. 그럼 어떤 구성에 어떤 수단을 써야 하나요? A. 쓰려는 구성에 따라 갈려요. 내 구성 쓸 수 있는 수단 토스 POS + 프론트 프론트는 일반 연결 모드. 확장은 POS 플러그인 SDK 또는 Open API 자체 POS·키오스크 + 프론트 (토스 POS 없음) 프론트 플러그인 SDK 외부 Windows POS에 결제만 추가 프론트 Windows DLL (제한적 지원, 사전 확인 필요) 서버에서 주문·결제 데이터만 조회 Open API 어떤 수단이 적합한지는 각 수단의 지원 범위를 연동 가이드에서 확인하신 후 판단해 주세요. 개발자센터에서는 수단별 지원 범위를 안내드리며, 서비스 요건에 맞는 구현 설계는 상담해 드리지 않아요. Q. 외부 POS에서 토스 프론트를 결제 단말기로만 쓸 수 있나요? A. 가능해요. 외부 시스템에서 주문 금액을 확정하고, 토스 프론트가 결제 승인과 취소를 수행하는 구조로 연동할 수 있어요. 결제 결과는 Payment API 응답으로 받아 솔루션사 서버에 저장해 주세요. 2. 서비스 이용료와 계약 Q. 이용료가 얼마인가요? A. 제품별 이용료는 아래 가이드에서 확인해 주세요. 플러그인 서비스 이용료 Q. 과금은 언제부터 시작되나요? A. 라이브 가맹점이 연결되는 시점부터예요. 개발 단계에서는 이용료가 발생하지 않아요. 테스트 가맹점 연결이나 개발 배포만으로는 과금되지 않아요. Q. 자체 매장 전용 플러그인도 과금되나요? A. 네. 솔루션사 여부와 관계없이 동일한 정책이 적용돼요. 자사 매장 내부 보고 목적으로 Open API를 연동하는 경우에도 같은 기준(연결 매장 10개 이하 무료)이 적용돼요. Q. 결제 수단이나 계좌는 어디서 등록하나요? 지금은 등록하실 것이 없어요. 2026년 12월 31일까지는 이용료가 발생하지 않아서 결제 수단이나 계좌를 등록하는 절차를 운영하지 않고 있어요. 과금 시점이 정해지면 등록 방법을 미리 안내드릴게요. 3. 개발·테스트 중 플러그인이 단말기에 보이지 않을 때 Q. 개발 배포했는데 단말기에 반영되지 않아요. A. 순서대로 확인해 주세요. 해당 단말기가 테스트 단말기로 등록되어 있는지 확인해 주세요. 개발 배포는 테스트 단말기(최대 5대)에만 적용돼요. 등록만으로는 적용되지 않아요. 등록한 뒤 로그아웃하고 테스트 가맹점 계정으로 재온보딩해야 적용돼요. 프론트는 설정 > 7055 > 토스 프론트 재시작, POS는 새로고침 또는 종료 후 재실행해 주세요. Q. 테스트 단말기 등록 목록이 비어 있어요. A. 등록은 프론트 단말기가 테스트 가맹점에 정상 로그인된 뒤에 가능해요. 최초 1회 순서는 아래와 같아요. 테스트 가맹점 정보(매장고유번호·사업자번호·휴대폰번호)로 프론트 온보딩 개발자센터 내 애플리케이션 > 단말기 등록에서 해당 단말기 등록 로그아웃 후 같은 정보로 재온보딩 목록이 계속 비어 있다면 온보딩 시 입력한 값이 개발자센터의 테스트 가맹점 상세에 표시된 값과 일치하는지 확인해 주세요. ::: tip 테스트 가맹점 관리의 ON은 다른 설정이에요 테스트 가맹점 관리에서 플러그인 사용 여부 ON은 가맹점과 플러그인을 연결하는 설정이에요. 단말기 등록 목록은 단말기와 테스트 가맹점의 로그인 상태를 기준으로 표시돼요. ON만으로 단말기가 목록에 나타나지는 않아요. ::: Q. 설정 화면(7055)에 플러그인 메뉴가 보이지 않아요. A. 설정 화면의 플러그인 메뉴는 해당 단말기에 플러그인이 정상적으로 로드된 경우에만 나타나요. 메뉴가 없다면 플러그인이 아직 적용되지 않은 상태이고, 그 메뉴에서 플러그인을 최초 설치할 수는 없어요. 로그아웃 후 테스트 가맹점 계정으로 재온보딩해 주세요. Q. POS 탭에 플러그인이 안 보여요. A. 토스 POS 1.22.9 버전 이상에서 탭 진입점이 GNB에서 LNB로 이동했어요. LNB에서 먼저 확인해 주세요. LNB에서도 보이지 않을 때 재온보딩이나 매니페스트 파일을 확인해 주세요. 4. 운영 매장에서 플러그인이 보이지 않을 때 Q. 대리점에 요청해서 ON 했는데 단말기에 나타나지 않아요. A. 이 순서로 확인해 주세요. 1번이 가장 흔한 원인이에요. 해당 단말기가 테스트 단말기로 등록되어 있지 않은지 확인해 주세요. 테스트 단말기에는 라이브 버전이 적용되지 않아요. 등록되어 있다면 개발자센터에서 테스트 단말기 등록을 해제해 주세요. VAN 대리점이 토스플레이스 파트너스에서 해당 매장 또는 단말기에 플러그인 앱을 활성화(ON)했는지 확인해 주세요. 프론트 앱을 재시작해 주세요. 설정 > 7055 > 토스 프론트 재시작 로그아웃 후 재온보딩해 주세요. ACL 등록값을 확인해 주세요. https://, http://, wss://처럼 프로토콜까지 실제 호출 URL과 일치해야 해요. Q. 라이브 배포 후에도 대기화면이 나오지 않아요. A. 위 1번(테스트 단말기 등록 해제)과 3번(프론트 재시작)을 먼저 확인해 주세요. 라이브 검수 통과 후에도 VAN 대리점의 활성화가 완료되어야 매장에 노출돼요. Q. 라이브로 전환한 매장을 다시 테스트로 되돌릴 수 있나요? A. 가능해요. 테스트와 라이브는 양방향으로 전환할 수 있고 재온보딩으로 처리돼요. VAN 대리점이 토스플레이스 파트너스에서 라이브 앱을 OFF (안정성을 위해 권장) 단말기 초기화 또는 로그아웃 테스트 매장으로 재온보딩 개발자센터에서 테스트 단말기 등록 5. merchantId 확인과 앱 연결 Q. 운영 매장의 merchantId는 어디서 확인하나요? A. 앱 설치 웹훅 이벤트(app.installation.created.v1)를 수신해서 확인하는 것이 공식 방법이에요. 내 앱이 어떤 매장에 설치되었는지는 이 이벤트로 확인할 수 있어요. 이벤트 payload에 매장 ID와 사업자등록번호가 함께 들어 있어서, 사업자등록번호를 기준으로 내부 시스템과 매핑할 수 있어요. 매장명·주소·영업시간도 같이 전달돼요. json { "type": "app.installation.created.v1", "merchantId": 42, "data": { "merchant": { "id": 42, "name": "플레이스 베이커리", "businessNumber": "0000000000" } }} 웹훅 수신 주소는 개발자센터 내 애플리케이션 > 웹훅에서 등록해 주세요. 앱을 연결하기 전에 미리 등록해 두시면 연결 시점에 바로 매장 ID를 받을 수 있어요. Q. 매장 조회 API로 먼저 찾을 수는 없나요? A. 매장 정보 조회 API는 merchantId를 이미 알고 있어야 호출할 수 있어요. 그리고 앱이 설치되지 않은 매장은 API를 호출할 수 없어요. 순서는 앱 연결 → 웹훅으로 매장 ID 확인 → 그 ID로 조회예요. 6. 라이브 검수 Q. 검수 전에 무엇을 준비해야 하나요? A. 별도로 정해진 필수 제출 서류 양식은 없어요. 개발자센터에서 라이브 배포 트랙에 플러그인 ZIP을 업로드한 뒤 [검수 요청] 버튼을 누르면 접수돼요. 추가로 필요한 자료가 있으면 검수 중에 개별적으로 요청드려요. 접수 전에 아래 세 가지는 직접 확인해 주세요. 모든 기능이 테스트 환경에서 정상 동작하는지 프론트 플러그인이라면 모든 화면이 Template API로 구성되어 있는지 개인정보 처리와 보안 정책을 준수하는지 Q. 통과 기준이 무엇인가요? A. 공통 4개 항목과, 프론트 플러그인에 추가되는 2개 항목을 확인해요. 항목 확인 내용 기능 검수 모든 기능이 명세대로 동작하는지 성능 검수 응답 속도와 안정성 보안 검수 개인정보·보안 문제 사용성 검수 사용자 경험이 적절한지 디자인 검수 (프론트 추가) Template API 사용 여부와 UI/UX 가이드라인 준수 제품 기능 검수 (프론트 추가) 결제·하드웨어 연동 등 핵심 기능 동작 프론트 플러그인에서 가장 자주 걸리는 항목은 디자인 검수예요. HTML·CSS를 직접 작성하거나 Template 바깥에 임의 텍스트·레이아웃을 추가하면 통과하지 못해요. Q. 검수는 얼마나 걸리나요? A. 두 가지를 함께 보셔야 해요. 검수를 진행하는 날: 매주 월·목요일(근무일 기준)이에요. 접수하신 시점 이후 가장 가까운 검수일에 들어가요. 검수 소요 시간: 검수가 시작된 뒤 평균 1-2일이에요. 결과는 이메일로 알려드려요. 접수 요일에 따라 전체 대기 기간이 달라져요. 오픈 일정이 정해져 있다면 라이브 검수 전에 개발 배포 트랙으로 먼저 검증해 주세요. 검수 승인 후에 수정하면 재검수로 일정이 밀려요. Q. 패키지를 바꾸지 않고 설정값만 바꿔도 다시 검수받아야 하나요? A. 검수는 라이브 배포 트랙에 패키지를 새로 업로드하고 검수 요청을 누를 때 진행돼요. 패키지 파일이 바뀌지 않으면 재검수는 발생하지 않아요. 문구나 설정값이 어디에 있느냐에 따라 갈려요. 솔루션사 서버에서 런타임에 내려오는 값이라면 → 서버만 수정, 재검수 불필요 플러그인 파일 안에 직접 작성되어 있다면 → 파일이 바뀌므로 재업로드 + 재검수 필요 Q. 자사 매장 1곳에서만 쓰는 플러그인도 검수를 받아야 하나요? A. 네, 절차는 같아요. 매장 수나 솔루션사 여부에 따른 예외는 없어요. 7. 새 매장에 배포할 때 Q. 라이브 검수를 한 번 통과하면 모든 매장에 적용되나요? A. 아니요. 두 가지를 구분해서 보셔야 해요. 검수는 플러그인 버전 단위예요. 한 번 승인되면 그 버전은 다시 검수받지 않아요. 매장 활성화는 매장 단위예요. 새 매장마다 활성화가 필요해요. 프론트 플러그인은 매장마다 VAN 대리점이 토스플레이스 파트너스에서 플러그인을 활성화해야 해요. 검수를 통과했다고 해서 자동으로 모든 매장에 노출되지는 않아요. Q. 연동 방식마다 다른가요? A. 네, 다릅니다. 연동 방식 새 매장 설치 방법 VAN 대리점 프론트 플러그인 VAN 대리점이 토스플레이스 파트너스에서 매장에 활성화 필요 POS 플러그인 서비스 코드를 가맹점에 전달 → 가맹점이 토스 POS에서 직접 설치 불필요 Open API 서비스 코드를 가맹점에 전달 → 가맹점이 직접 연결 불필요 단, 프론트 플러그인과 Open API를 함께 쓰는 구성이라면 결국 VAN 대리점을 거쳐야 해요. 두 가지를 같이 쓰실 계획이라면 새 매장마다 VAN 대리점 활성화가 필요한 것으로 보고 일정을 잡아 주세요. Q. 테스트 환경에서도 VAN 대리점이 필요한가요? A. 아니요. 테스트 가맹점은 개발자센터에서 직접 ON/OFF할 수 있어요. 8. 403 · 4010 권한 오류 Q. 서버 호출에 403이 반환돼요. 응답이 JSON이 아니고 HTML이에요. A. 응답 본문이 HTML이고 x-toss-event-id 헤더가 없다면, 요청이 애플리케이션 단계에 도달하지 못한 상태예요. 인증키 문제라면 JSON 오류 응답이 반환돼요. 먼저 User-Agent 헤더를 추가해서 재시도해 주세요. 기존 인증 헤더(x-access-key, x-secret-key)와 함께, 호출하는 서비스를 식별할 수 있는 값으로 지정해 주세요. GET /api-public/openapi/v1/merchants/{merchantId} x-access-key: ... x-secret-key: ... User-Agent: my-service/1.0 User-Agent가 없는 요청은 차단될 수 있고, 그 상태로 요청이 반복되면 해당 출구 IP가 차단 목록에 등록될 수 있어요. 재시도·헬스체크·배치 등 모든 호출 경로에 User-Agent가 들어가는지 확인해 주세요. ::: warning 해외 리전에서 호출하는 경우 응답의 CF-Ray 값 끝이 ICN이 아니라면 해외 엣지를 경유한 호출이에요. 재시도 후에도 403이 계속되면 호출 서버의 공개 출구 IP와 함께 문의해 주세요. 이 값이 있어야 차단 이력과 대조할 수 있어요. 클라우드 환경에서는 출구 IP가 여러 개일 수 있으니 전체를 알려주세요. ::: Q. 403 또는 4010 오류가 계속돼요. A. 아래 두 가지를 먼저 확인해 주세요. 요청 헤더의 x-access-key, x-secret-key 값 대상 매장에 앱이 설치되어 있는지 — 앱을 설치하지 않은 매장에는 API를 호출할 수 없어요 계속 오류가 발생하면 아래 정보와 함께 문의해 주세요. 응답 본문의 errorCode와 reason 응답 헤더의 x-toss-event-id 호출 시각(KST, 초 단위)과 도메인을 포함한 전체 호출 URL 호출 서버의 공개 출구 IP Q. 테스트 환경에서는 되는데 운영에서만 실패해요. A. 두 환경의 차이를 확인해 주세요. 운영 매장에 앱이 설치되어 있는지 (테스트 가맹점 설치와 별개예요) 호출 서버가 바뀌면서 출구 IP가 달라졌는지 운영 호출 경로에 User-Agent가 빠져 있지 않은지
  • 0 투표
    3 게시물
    13k 조회수
    C
    @토스플레이스-개발자센터 빠르게 답변해주셔서 감사합니다. 개발자센터 계정과 사업자번호 및 단말기 정보 메일은 금일 오전에 전달하였습니다.
  • 0 투표
    2 게시물
    13k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 별도 사업자인 체인점에도 기존 개발자 계정의 프론트 플러그인과 Open API 앱을 적용할 수 있습니다. 다만 개발 배포 상태를 그대로 확대하는 것이 아니라, 라이브 검수·배포와 체인점별 앱 활성화가 필요합니다. 1. 라이브 검수 신청 개발자센터의 라이브 배포 트랙에 플러그인 파일을 업로드한 뒤 검수를 요청해 주세요. 테스트 결과와 관련 문서를 준비하고, 기능 동작·결제 흐름·Template API 사용·보안 기준을 확인해 주세요. 검수는 매주 월·목요일, 근무일 기준으로 진행합니다. 가이드의 평균 소요 기간은 1일이며, 보완 사항이 있으면 완료 시점은 달라질 수 있습니다. 검수 기준과 배포 절차를 참고해 주세요. 2. 체인점의 대리점 연결 단말기 구매만으로 플러그인이 활성화되지는 않습니다. 담당 VAN 대리점에 앱 조회·활성화 권한이 연결되어 있어야 하며, 대리점에서 체인점의 앱 사용 여부를 ON으로 설정해야 합니다. 같은 대리점에 해당 앱의 권한이 이미 연결되어 있다면 체인점 활성화를 요청해 주세요. 다른 대리점이거나 아직 권한이 없다면, 앱 이름·ID와 대리점명·대리점 사업자번호를 개발자센터 메일로 전달해 주세요. 3. 체인점의 Open API 앱 체인점이 별도 앱을 만들 필요 없이 기존 laundryplan-pay 앱을 함께 사용할 수 있습니다. 토스 POS 없이 프론트만 운영하는 매장은 서비스 코드를 직접 입력하는 방식이 아니라, VAN 대리점을 통해 Open API 앱을 적용합니다. 프론트 플러그인과 Open API 앱을 각각 활성화해 주세요. 연결 후에는 체인점의 merchantId로 결제 내역을 조회하고 매장별 데이터를 구분해 주세요. Open API 서비스 설치 가이드를 참고해 주세요. 4. 별도 사업자 매장 지원 체인점의 사업자가 달라도 기존 앱을 매장별로 연결해 사용할 수 있습니다. 이를 위해 체인점이 별도의 개발자 계정을 만들거나 동일한 앱을 다시 개발할 필요는 없습니다. 기존 계정에서 앱을 관리하고, 각 매장에는 해당 매장 정보로 설치·활성화해 주세요. 5. 프론트2·터미널2 환경 프론트2도 프론트 플러그인 SDK를 사용하는 대상입니다. 플러그인이 실행되는 장비는 프론트이며, 터미널에 플러그인을 설치하는 구조는 아닙니다. 다만 기존 단말기에서의 테스트가 프론트2 환경의 동작까지 검증한 것은 아닙니다. 체인점 적용 전 프론트2에서 화면 표시, 결제·취소, 사용 중인 주변기기 기능을 개발 배포로 확인해 주세요. 기기 변경만을 이유로 SDK를 별도 방식으로 교체하는 것은 아니며, 실제 기능 차이에 따른 수정 여부는 이 테스트를 기준으로 확인해 주세요.
  • 0 투표
    2 게시물
    13k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 현재 프론트 플러그인에서 페이스페이만 실행하는 전용 API·템플릿과 카드 결제만 실행하는 전용 화면은 별도로 제공하지 않습니다. 자체 POS에서 결제를 시작하더라도, 프론트 플러그인에서는 requestPayment로 통합 결제 화면을 호출하는 방식을 사용해 주세요. 문의 주신 페이스페이와 카드 결제도 이 화면에서 진행합니다. 결제 수단 제외 옵션인 excludePaymentTypes는 현재 현금(CASH)만 지원하므로, 이 옵션으로 페이스페이 또는 카드만 남기는 구성은 지원하지 않습니다. 자세한 호출 방법은 Payment API 가이드를 참고해 주세요.
  • 0 투표
    2 게시물
    14k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. startTimer를 호출할 때 반환되는 함수를 실행하면 타이머를 중지할 수 있습니다. 중지한 뒤 startTimer를 다시 호출하면 설정한 시간부터 새로 시작합니다. 문의하신 흐름은 다음과 같이 구현해 주세요. startTimer를 호출하고, 반환된 중지 함수를 보관합니다. 사용자의 터치·입력 이벤트가 발생하면 보관한 함수를 실행해 기존 타이머를 중지합니다. startTimer를 다시 호출하고, 새로 반환된 중지 함수로 교체합니다. 터치나 입력만으로 타이머가 자동 초기화되지는 않으므로, 해당 이벤트에 중지·재시작 처리를 연결해 주세요. 입력 템플릿에서는 input.onChange를 활용할 수 있습니다. 기존 타이머가 실행 중인 상태에서 startTimer를 다시 호출하면 오류가 발생하므로 반드시 먼저 중지해 주세요. 화면을 벗어날 때도 타이머를 중지해 주세요. 중지 함수 실행만으로는 onTimeout이 호출되지 않습니다. 타이머 가이드
  • 0 투표
    3 게시물
    15k 조회수
    토스플레이스-개발자센터토
    프론트 플러그인과 OpenAPI 병행 사용 가능합니다. 각각 플러그인 앱으로 생성하여 매장에 연결해주시면 됩니다. 매장 설치과정 역시 동일하며, 연동가이드의 프론트 플러그인 설치 가이드 확인 부탁 드리겠습니다.
  • 0 투표
    2 게시물
    15k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 문의하신 프론트 결제 주문의 상품명 변경에 대해 안내 드립니다. 1. update-line-items 사용 권한과 4030 오류 update-line-items는 공개된 주문 내역 변경 API이며, 주문 생성 API 사용 권한이 부여된 앱에서 사용할 수 있습니다. 조회 API 사용 권한과는 별도로 확인이 필요합니다. 전달해 주신 4030(해당 기능에 대한 접근 권한이 없습니다) 오류는 해당 앱의 주문 생성 API 권한 부여 여부를 먼저 확인해야 합니다. 다만 권한이 부여되더라도 Open API의 주문 생성 API로 만든 주문만 변경할 수 있습니다. 프론트 결제로 자동 생성된 PARTNER_APP 주문은 변경 대상이 아닙니다. 주문 내역 변경 가이드 2. 결제 완료 주문의 변경 여부 이번 주문은 COMPLETED 상태 여부에 앞서 프론트 결제로 생성된 PARTNER_APP 주문이라는 점이 제한 사항입니다. 결제 전에 변경 API를 호출하는 것만으로 이 제한이 해소되지는 않습니다. 3. 주문 사전 생성 후 프론트 결제 연결 프론트 Payment API에는 기존 주문 ID를 지정하는 항목이 없습니다. Open API의 orderKey와 프론트의 paymentKey를 동일하게 설정해도, 미리 생성한 주문에 결제가 연결되지 않습니다. 따라서 동일한 식별자로 주문과 결제를 연결하는 방식은 권장하지 않습니다. 4. 실제 상품명 기록 방법 현재 프론트 Payment API에는 상품명·품목 목록을 전달하는 항목이 없습니다. 따라서 현재 제공되는 API만으로 프론트 결제 주문의 상품명을 실제 상품명으로 지정하거나 변경하는 방식은 지원되지 않습니다. 프론트 결제 가이드 솔루션사 시스템에서 상품정보와 결제 결과를 연결해 관리할 수는 있으나, 이 방식이 토스 매출 내역이나 영수증의 상품명을 변경하는 것은 아닙니다.
  • 0 투표
    6 게시물
    15k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 1. 터미널1의 백업 결제 사용 터미널1에서 금액을 직접 입력하고, 터미널1 자체 카드 리더기로 결제하는 것은 가능합니다. 앞서 안내한 미지원 사항은 프론트 플러그인의 영수증을 터미널1로 출력하는 기능이며, 터미널1 자체 카드 결제를 뜻한 것은 아닙니다. 다만 플러그인 모드의 프론트를 기존처럼 터미널1의 카드 리더기로 함께 사용하는 구성은 지원하지 않습니다. 백업 결제는 프론트와 결제 연동을 분리한 터미널1에서 진행하며, 터미널1의 정상적인 결제 설정과 인터넷 연결이 필요합니다. 2. 장비 교체 필요 여부 백업 카드 결제 목적만이라면 터미널2·프론트2로 교체할 필요는 없습니다. 기존 터미널1의 자체 결제를 이용하시면 됩니다. 프론트 플러그인의 영수증 출력까지 필요하다면 별도로 지원되는 프린터 구성을 검토해 주세요. 3. 테스트 설정 적용과 기존 화면 복구 사용 여부 ON과 테스트 단말 등록만으로 현재 화면이 즉시 플러그인 모드로 전환되지는 않습니다. 설정 후 프론트를 다시 온보딩하면 개발 배포된 플러그인이 적용됩니다. 반대로 일반 터미널 연결 모드로 돌아갈 때도 OFF 후 재시작만으로 복구하는 방식은 아닙니다. 플러그인 사용을 해제한 뒤 프론트에서 로그아웃 또는 초기화를 진행하고, 기존 터미널 연결 방식으로 다시 온보딩해야 합니다. 영업 중인 프론트를 테스트 단말기로 등록하면 해당 장비가 개발 코드 적용 대상이 됩니다. 운영에 영향을 주지 않도록 별도의 테스트 단말기 사용을 권장합니다. 테스트 단말기 등록 가이드 · 재온보딩 안내
  • 0 투표
    2 게시물
    15k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 두 API는 결제 정보를 가져오는 경로가 서로 다릅니다. printReceipt 는 전달하신 paymentKey 로 토스플레이스 서버에서 결제 정보를 조회한 뒤 영수증을 출력합니다. getPayment 는 결제한 단말기의 로컬 캐시를 조회합니다. TTL 14일, 최대 1,000건이라는 정책은 이쪽에만 적용됩니다. 각 API의 파라미터는 아래 문서에서 확인하실 수 있습니다. https://docs.tossplace.com/reference/plugin-sdk/front/printer.html https://docs.tossplace.com/reference/plugin-sdk/front/payment.html 감사합니다.
  • 0 투표
    2 게시물
    15k 조회수
    토스플레이스-개발자센터토
    안녕하세요. 토스플레이스 개발자센터입니다. 프론트 플러그인 SDK의 결제 응답에는 Open API의 orderId가 포함되지 않습니다. 응답에 orderId를 추가하거나 paymentKey로 orderId를 조회하는 기능도 제공하지 않습니다. paymentKey는 솔루션사에서 결제를 요청하실 때 직접 생성하시는 식별자로, Open API의 결제 ID나 주문 ID와는 별개의 값입니다. 프론트 SDK는 결제 승인 결과를 돌려주고 Open API는 주문·결제 데이터를 제공하기 때문에, 두 응답의 규격이 서로 다릅니다. 프론트 SDK 쪽에서는 요청하신 paymentKey와 결제 금액, 응답으로 받으신 승인번호와 승인시각을 함께 보관해 주세요. Open API의 orderId는 결제 조회 응답이나 결제 승인 웹훅의 data.payment.orderId에서 확인하실 수 있습니다. 다만 두 거래를 공통 식별자로 자동 연결해 드리는 기능은 제공하지 않습니다. 연결이 필요하시면 같은 매장의 승인번호와 승인시각, 금액을 대조하는 기준을 세우신 뒤 별도로 검증해 주셔야 합니다. 승인번호 하나만으로 동일 거래로 판단하지 않도록 유의해 주세요. 감사합니다.